package com.ruoyi.mapper.jpjs.concrete;

import com.ruoyi.domain.jpjs.common.concrete.Concrete;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface ConcreteMapper {

    /**
     * 获取 工程公司>项目名称 tree数据
     * @param userId 登录用户id
     * @return 结果
     */
    List<Map<String, Object>> getProgramTree(@Param("userId") Long userId);

    /**
     * 获取 工程公司>项目名称
     * @param userId 登录用户id
     * @return 结果
     */
    List<Map<String, Object>> getProgramNameList(@Param("userId") Long userId);

    /**
     * 根据筛选条件获取混凝土填报概要信息
     * @param map
     * @return
     */
    List<Concrete> selectConcreteList(Map<String, Object> map);

    /**
     * 根据筛选条件获取混凝土填报详细信息
     * @param map
     * @return
     */
    List<Map<String, Object>> selectConcreteDetailList(Map<String, Object> map);

    /**
     * 根据工程公司和项目名称获取楼号
     * @param map
     * @return 结果
     */
    List<Map<String, Object>> selectBuildingNumberList(Map<String, Object> map);

    /**
     * 批量新增混凝土报表信息
     *
     * @param concreteList 混凝土报表信息集合
     * @return 新增条数
     */
    public int insertConcreteBatches(List<Concrete> concreteList);

    /**
     * 报表标识删除报表
     *
     * @param checkId 报表标识
     * @return 结果
     */
    public int deleteUserBycheckId(String[] checkId);

    /**
     * 修改报表信息
     *
     * @param concrete 混凝土报表信息
     * @return 结果
     */
    public int updateConcreteById(Concrete concrete);

    /**
     * 校验校验工程公司，项目名称，工程部位，结构部位，设计标号唯一性
     * @param concrete 混凝土报表信息
     * @return 结果
     */
    List<Concrete> checkConcreteUnique(Concrete concrete);

    /**
     * 根据用户ID,获取用户项目id集合
     * @param userId 用户ID
     * @return 项目集合
     */
    List<String> selectProIdListByUserId(Long userId);
}
